使用easyExcel模板输出 | 您所在的位置:网站首页 › fill up和fill out › 使用easyExcel模板输出 |
使用easyExcel模板输出
一、maven依赖二、导入模板格式要求1、普通填充型2、循环填充型3、组合填充型
三、write()与fill()的区别四、输出文件流五、输出excel文件
一、maven依赖
com.alibaba
easyexcel
2.2.3
org.springframework
spring-web
RELEASE
compile
org.springframework
spring-test
RELEASE
compile
二、导入模板格式要求
1、普通填充型
使用{parameter}的形式来填充,再代码中设置对应的属性,一个sheet页中的所有参数,在Java中都需要抽象成对象 使用{.parameter}的形式来填充,此填充类型与普通填充型最大的区别在于,他是有方向的,默认方向为从上到下 将普通填充和循环填充结合使用的一种方式,在使用的过程中并不完全依赖对象,有时也需要依赖容器 在组合填充的过程中,我们会看到两个向excel写入的方法,write() 和 fill() ,他们有什么区别呢? write() 多用于流的输入输出,也可以用于普通的模板填充 fill() 是模板填充的专用方法,它可以设置模板填充时的填充方向 四、输出文件流 创建vo对象 @Data public class TeacherVO { /** * 班级 */ private String clazz; /** * 班主任 */ private String instructor; } 流输出核心代码 String path = ClassUtils.getDefaultClassLoader().getResource("").getPath(); // 获取模板文件路径 String tempFile = path + "static/excelTemplate.xlsx"; // 获取文件输出路径 String file = path + "static/excelResult.xlsx"; // 获取需要填充的对象 TeacherVO teacher = new TeacherVO(); teacher.setClazz("一年级一班"); teacher.setInstructor("张三"); // 以输出流的形式返回给前端 EasyExcel.write(file).withTemplate(tempFile).sheet("sheet2").doFill(teacher); 五、输出excel文件 创建vo对象 @Data public class StudentVO { /** * 学号 */ private String number; /** * 姓名 */ private String name; /** * 语文成绩 */ private String chineseAchievement; /** * 数学成绩 */ private String mathematicsAchievement; /** * 英语成绩 */ private String englishAchievement; } 文件输出核心代码 String path = ClassUtils.getDefaultClassLoader().getResource("").getPath(); // 获取excel模板 String tempFile = path + "static/excelTemplate.xlsx"; // 创建输出流 try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) { // 将模板输出到创建的输出流中,并创建ExcelWriter对象 ExcelWriter writer = EasyExcel.write(byteArrayOutputStream).withTemplate(tempFile).build(); // 创建WriteSheet对象,指定输出的sheet页 WriteSheet sheet1 = EasyExcel.writerSheet("sheet1").build(); // 创建FillConfig对象,指定输出方向 FillConfig fillConfig = FillConfig.builder().direction(WriteDirectionEnum.VERTICAL).build(); // 获取需要被填充的数据 List studentList = new ArrayList(); for (int i = 0; i e.printStackTrace(); }【结束语】 几个星期前遇到了一个需求,需要做一个导入功能,在导入数据的过程中需要将错误数据输出到一个excel表格中,我使用redis将正确数据和错误数据分别临时存储,在数据全部正确的时候一起保存数据,并将数据按照以上方式生成了一个excel文件上传到文件服务器备份,以上就是我最终的解决方案,希望可以帮助到有需要的小伙伴 |
CopyRight 2018-2019 实验室设备网 版权所有 |